﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Filmy.Model;

namespace Filmy.Kontroler.BazaDanych
{
    class FilmyTytuly
    {
        public FilmyTytuly()
        {
            dtFilmyTytuly = new dsFilmowy.FilmyTytulyDataTable();
            adapter = new Filmy.Model.dsFilmowyTableAdapters.FilmyTytulyTableAdapter();
        }

        dsFilmowy.FilmyTytulyDataTable dtFilmyTytuly;
        Filmy.Model.dsFilmowyTableAdapters.FilmyTytulyTableAdapter adapter;
        public static int idOstatniego { get; set; }

        public bool addNewOrId(string tytul, string tytulOrg, string ocena)
        {
            dsFilmowy.FilmyTytulyRow ftrow = dtFilmyTytuly.NewFilmyTytulyRow();
            
            ftrow.Tytul = tytul;
            ftrow.TytulOrg = tytulOrg;
            if (ocena.Length > 0)
            {
                ftrow.Ocena = Convert.ToDouble(ocena.Replace(".", ","));
            }
            int czyJest = 0;
            czyJest = Convert.ToInt16(adapter.SprawdzCzyIstnieje(tytul));
            if (czyJest == 0)
            {
                dtFilmyTytuly.AddFilmyTytulyRow(ftrow);
                adapter.Update(dtFilmyTytuly);
                idOstatniego = dtFilmyTytuly.Last().idFilmu;
                return true;
            }
            else
            {
                idOstatniego = Convert.ToInt16(czyJest);
                return false;
            }
        }

        public void deleteRow(List<int> ids)
        {
            foreach (int id in ids)
            {
                adapter.UsunRekord(id);
            }
        }

        public string dajPole(int id, string pole)
        {
            dtFilmyTytuly = adapter.GetDataById(id);
            return dtFilmyTytuly[0][pole].ToString();
        }

        public DataTable dajTabele()
        {
            adapter.Fill(dtFilmyTytuly);
            return dtFilmyTytuly;
        }

        public void update(string tytul, string tytulOrg, string ocena, int id)
        {
            idOstatniego = Convert.ToInt16(adapter.UpdateFilmy(tytul, tytulOrg, Convert.ToDouble(ocena), id));
        }

        public DataTable dajTabele(string kryterium, string wartosc)
        {
            switch (kryterium) 
            {     
                case "rokProdukcji":
                    adapter.FillByRokProdukcji(dtFilmyTytuly, Convert.ToInt16(wartosc));
                    return dtFilmyTytuly;
                case "wersja":
                    adapter.FillByWersja(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                case "uzytkownik":
                    adapter.FillByUzytkownik(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                case "gatunek":
                    adapter.FillByGatunek(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                case "rezyser":
                    adapter.FillByRezyser(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                case "kraj":
                    adapter.FillByKraj(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                case "tytul":
                    adapter.FillByTytul(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                case "tytulOrg":
                    adapter.FillByTytulOrg(dtFilmyTytuly, wartosc);
                    return dtFilmyTytuly;
                default:
                    adapter.Fill(dtFilmyTytuly);
                    return dtFilmyTytuly;
            }
        }

        public void writeXML()
        {
            dtFilmyTytuly.WriteXmlSchema("D:\\Filmysh.xml");
            //dsFilmowy ds = new dsFilmowy();
            //ds.WriteXml("D:\\schemaFilmy.xsd");
            //ds.WriteXml("D:\\daneFilmy.xml");
        }
    }
}
